package detallecarroejb;

import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import entidades.DetalleCarro;

/**
 * Session Bean implementation class DetCarroEJB
 */
@Stateless(name = "DCEJB", mappedName = "DCEJB")
public class DetCarroEJB implements DetCarroEJBRemote {

    /**
     * Entity manager del EJB.
     */
    @PersistenceContext(unitName = "JPATINET")
    private EntityManager EM;

    /**
     * Default constructor.
     */
    public DetCarroEJB() {

    }

    /**
     * @see detallecarroejb.DetCarroEJBRemote#AddDetCarro(entidades.DetalleCarro)
     */
    public void AddDetCarro(DetalleCarro dc) {
        EM.persist(dc);

    }

    /**
     * @see detallecarroejb.DetCarroEJBRemote#DelDetCarro(entidades.DetalleCarro)
     */
    public void DelDetCarro(DetalleCarro dc) {
        DetalleCarro delDC = EM.find(DetalleCarro.class, dc);
        EM.remove(delDC);
    }

    /**
     * @see detallecarroejb.DetCarroEJBRemote#ListarDetCarro()
     */
    public List<DetalleCarro> ListarDetCarro() {
        Query q = EM.createQuery("Select dc from DetalleCarro dc");
        @SuppressWarnings("unchecked")
        List<DetalleCarro> listDC = (List<DetalleCarro>) q.getResultList();
        return listDC;
    }

    /**
     * @see detallecarroejb.DetCarroEJBRemote#AddItemCarro(entidades.DetalleCarro)
     */
    public void AddItemCarro(DetalleCarro dc) {
        DetalleCarro modDC = EM.find(DetalleCarro.class, dc);
        modDC.setCantidad(modDC.getCantidad() + 1);
    }

    /**
     * @see detallecarroejb.DetCarroEJBRemote#RemoveItemCarro(entidades.DetalleCarro)
     */
    public void RemoveItemCarro(DetalleCarro dc) {
        DetalleCarro modDC = EM.find(DetalleCarro.class, dc);
        if (modDC.getCantidad() > 1) {
            modDC.setCantidad(modDC.getCantidad() - 1);
        } else {
            EM.remove(modDC);
        }

    }


    /**
     * @see detallecarroejb.DetCarroEJBRemote#getListaDetalle()
     */
    public List<DetalleCarro> getListaDetalle() {
        // TODO Auto-generated method stub
        return null;
    }

}
